这两篇文章分别来自 DSTC7 评测任务1 Sentence Selection 中排名第一和第二的团队,阿里巴巴达摩院以及Palo Alto研究中心。该任务重点关注了面向目标的对话系统中的回复选择问题,参赛者需要结合给定的对话片段在给出的一组候选回复中选择最符合的一个应答。这两个模型分别属于多轮对话的回复选择中基于序列的方法和基于层次的方法。
Sequential Attention-based Network for Noetic End-to-End Response Selection
Comparison of Transfer-Learning Approaches for Response Selection in Multi-Turn Conversations
Introduction
该任务包含两个数据集:Advising数据集(包含学生和他的选课顾问之间的对话)和Ubuntu数据集(顾客和技术支持者之间的对话)。每个数据集包括两个speaker之间的部分对话,以及下一句应答的一组可选项。
该任务下又分了5个子任务,它们的不同主要在候选应答的数量,候选应答中正确应答句的数量,以及是否允许访问外部数据集。
- 从100个候选句(包含1个正确回复)中选择下一句回复。
- 从120000候选句中选择下一句回复。(仅适用于Ubuntu数据)
- 从100个候选句(包含1-5个正确回复)中选择下一句回复。(仅适用于Advising数据)
- 从100个候选句(包含0个或1个正确回复)中选择下一句回复或者None。
- 从100个候选句中选择正确回复,可以访问外部数据集。
两篇文章都将应答选择看做是一个二元的分类任务,给定一个多轮的对话历史和一个候选应答,模型需要做的就是判断该应答是否为正确的应答句。现在多轮对话的应答选择的典型方法有基于序列的和基于层次的两类。
Sequence-based methods usually concatenate the context utterances into a long sequence. Hierarchy-based methods normally model each utterance individually and then explicitly model the interactions among the utter-ances.
Sequential Attention-based Network for Noetic End-to-End Response Selection
ESIM
本文用到的模型是为自然语言推理任务而设计的ESIM(ACL2017)模型,这个模型整体结构图如下所示,主要分为3个部分:Input Encoding,Local Matching 和 Matching Composition。
Input Encoding
- 将对话历史拼接成一个长序列
- 对于长序列中的每一个词将多种词向量拼接,然后用一个relu的前馈层压缩维度
- 将对话历史和候选答复分别用LSTM进行编码,得到context 隐层状态 $c_{i}^{s}$ 和 response 隐层状态 $r_{j}^{s}$
Local Matching
对对话历史和应答之间的局部语义关系的建模是确定应答是否正确的关键。比如,正确的应答句通常涉及对话历史中的一些关键字,这可以通过局部语义建模来获得。本文使用cross-attention机制来将来自对话历史和应答句的tokens对齐,然后计算token级别的语义关系。attention权重计算方式如下:
(4)式和(5)式分别对应context 隐层状态 $c_{i}^{s}$对所有的response 隐层状态 $r_{j}^{s}$做注意力和response 隐层状态 $r_{j}^{s}$对所有的context 隐层状态 $c_{i}^{s}$做注意力,其中均采用内积运算。
By comparing vector pair $<c_{i}^{s}, c_{i}^{d}>$, we can model the token-level semantic relation between aligned token pairs.
F是单层全连接以减小维度。
Matching Composition
确定应答句是否为正确的下一句话,需要一个合成层来合成上面得到的局部匹配的结果。这里再次使用BiLSTM来读取局部匹配向量并学习区分关键的局部匹配向量来获得整体的语义关系 。
之后对BiLSTM2的隐层做池化操作,得到固定长度的向量,再通过一个MLP得到softmax输出:
Sentence-encoding based methods
在Ubuntu数据的子任务2中,需要从12000个候选项中选出正确的应答句,所以需要先从中选出TOP100,然后再将这100个候选应答输入到ESIM主模型中进行排序。这里选出TOP100用了基于句子编码的模型(类似于Siamese的架构),使用多抽头的self-attention池化的BiLSTM来对句子进行编码,并应用MLP来分类。模型如图所示:
Experiment
作者还提到之前SOTA的模型大多是hierarchy-based的模型,显式地建模不同轮次的交互,而本文的结果证明sequential-based模型也有很好的效果。
Comparison of Transfer-Learning Approaches for Response Selection in Multi-Turn Conversations
MT-EE
本文是基于层次结构的模型,同样用到了ESIM,但是不同于上文将对话历史连接成一个长序列,本文提出的解决方案是将对话历史中的每个语句分别与候选句进行匹配,将所有的匹配结果再输入到合成层进行聚合。
本文认为单句话与应答之间的关系受这句话在对话历史中的位置以及说这句话的人的影响,而对话中不同的角色所说的话对应答选择造成的影响也不同。所以在聚合时,加入了这两方面因素的影响。模型结构如下所示:
首先将 context 里的每一个 c 与 r 进行比较,这里用的是上文所述的句子对建模模型ESIM和ELMo来获得两者之间的匹配关系。不同于直接使用ESIM的输出(分类概率),我们去掉最后一层,并且使用前一层的输出向量,将这个向量定义为$v_{i}$ 。
之后再通过一个残差结构,然后将所有的$v_{i}{}’$加权求和,最后再通过一个softmax输出层:
End-to-End Pre-trained Models
For both models, the standard approach for sentence-pair tasks is to concatenate the two sentences, along with
a separator token, into a single input sequence. We take this same approach for the present task, by concatenating
context and response (and separator token). To capture the structure within the context, we also insert speaker-specific delimiter tokens between the utterances in the context: EOU1 if the preceding utterance came from Speaker 1, or EOU2 if it was from Speaker 2. Thus the structure is encoded through delimiters tokens rather than through a structured aggregation approach as in MT-EE.